package utils

import (
	"bytes"
	"encoding/base64"
	"github.com/skip2/go-qrcode"
	"image/png"
)

// GenerateQRCode 生成二维码并返回 Base64 编码
func GenerateQRCode(content string) (string, error) {
	// 生成二维码
	qrCode, err := qrcode.New(content, qrcode.Medium) //传入字符串对象
	if err != nil {
		return "", err
	}

	// 创建一个字节缓冲区
	var buf bytes.Buffer
	// 将二维码图像编码为 PNG 格式
	if err := png.Encode(&buf, qrCode.Image(256)); err != nil {
		return "", err
	}

	// 将 PNG 图像编码为 Base64
	base64 := base64.StdEncoding.EncodeToString(buf.Bytes())
	return base64, nil
}
